package merge;

import java.util.Arrays;
import java.util.LinkedList;

public class Solution {
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals,(o1, o2)->o1[0]-o2[0]);
        LinkedList<int[]> ans = new LinkedList<>();
        ans.add(intervals[0]);
        for(int i = 1;i<intervals.length;i++) {
            if(ans.getLast()[1]>=intervals[i][0]) {
                // 两个区间有交集
                // 合并区间
                ans.getLast()[1] = Math.max(ans.getLast()[1],intervals[i][1]);
            }else {
                ans.addLast(intervals[i]);
            }
        }
        return ans.toArray(new int[ans.size()][]);
    }
}
